//
// Created by sri01 on 2025/11/4.
//

#ifndef ENCODER_H
#define ENCODER_H

#include "stdint.h"

#define MOTOR_P         7u               // 电机极对数
#define MOTOR_RS        0.125786185f     // 相电阻
#define MOTOR_LS        2.37391487e-05f  // 相电感
#define MOTOR_FLUX      0.0f             // 磁链
#define MOTOR_OFFSET    13360            // 电机偏移量
#define MOTOR_DIRECTION CCW              // 电机方向

/*转动方向*/
typedef enum
{
    REVERSAL = -1,  /*反转*/
    COROTATION = 1, /*正转*/
} ROTATION_Dir_t;

/*编码器结构体*/
typedef struct
{
    float ElAngle;       /*当前电角度*/
    float ElAngle_vel;   /*当前电角速度*/
    float MecAngle;      /*当前机械角度*/
    float MecSpeed;      /*平均机械速度 r/min */
    float Max_MecSpeed;  /*最大机械速度限制*/
    uint32_t pole_pairs; /*极对数*/
    ROTATION_Dir_t dir;  /*速度方向*/
} Encoder_t;

#endif  // ENCODER_H
